//
//  main.m
//  今日福利
//
//  Created by 周琦 on 16/5/11.
//  Copyright © 2016年 lanou. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    /*
     *********************第1课-第四课 课堂练习+作业题目***********************************
     
     1、（**）编写一个程序，要求用户输入一个人民币数量，然后显示出增加%5税率后的相应金额。格式如下所示：
     输入:100.00元
     输出:$105.00元
     
     2、（**）从键盘输入两个实数a和b，输出a占b的百分之几。小数点后保留2位。
     例如：输入1和4，输出：25.00%
     3、（**）编写一个程序，要求用户输入一个人民币数量， 然后显示出如何用最少的20元、10元、5元和1元来付款：
     输入93元,输出如下
     $20 : 4
     $10 : 1
     $5  :0
     $1  :3
     
     4.控制台输入一个字符,如果输入的是m,则输出男性,否则什么都不输出.
     5.输入一个年份,判断年份是否是闰年,如果是闰年,则输出该年是闰年,否则输出该年不是闰年.
     6.从键盘输入一个字符，如果是数字打印"输入的是数字"，如果是大写字母，打印"输入的是大写字母"，如果是小写字母，打印"输入的是小写字母"，如果是其他字符，打印other
     7.从控制台输入1~4，对应打出春夏秋冬的英文词 (用枚举值做)
     8.（＊）输入一个整数，判断奇偶，并输出“某某是奇数”或者“某某是偶数”。
     
     9.（＊）输入一个整型数，判断如果大于0，输出“正数”；如果小于0，输出“负数”；如果等于0，输出“0”。
     
     10.（＊＊）编程判断3人中谁的年龄最大，并打印最大者的年龄
     
     11.（＊＊）铁路托运行李规定：行李重不超过50公斤的，托运费按0.15元每公斤计算，
     如果超过50公斤，超出部分每公斤加收0.1元。编程实现上述功能
     (x – 50)*(0.1 + 0.15)+ 50 * 0.15;
     
     
     12.（＊＊）有一个函数：x<1的时候，y = x；1<=x<10的时候，y=2x-1；x>=10的时候，y=3x-11。写一段程序，输入x，输出y值
     
     13.（＊＊）编制一个完成两个数四则运算程序。如：用户输入34+56则输出结果为90.00，
     要求运算结果保留2位有效小数，用户输入时将2个运算数以及运算符都输入，
     根据运算符求结果
     
     14.（＊＊＊）输入3个数，判断是否能构成三角形
     
     15.（＊＊＊＊）输入三个数，用两种方法打印出中间值（即第二大值）
     提示：第一种，先求最大最小；第二种，只使用条件运算符
     
     16.用户从控制台输入一个n，用while打印n个随机数(范围为10~30)。
     17.用户从控制台输入一个n，用while打印n个随机数(范围为30~70)，找出n个随机数中的最大值。
     18.用for打印出1~100之间7的倍数。
     19.用for打印出1~100之间个位为7的数。
     20.用for打印出1~100之间十位为7的数。
     21.用for打印出1~100之间不是7的倍数并且不包含7的数。
     22.如何打印
     1
     12
     123
     
     23.打印乘法口诀
     24.打印三个数字（0 - 9）的组合可能(组合成三位数)。
     
     25. （＊＊）随机产生20个[10 , 100]的正整数，输出这些数以及他们中的最大数
     
     26. （＊＊）编程将所有“水仙花数”打印出来，并打印其总个数。 “水仙花数”是一个
     各个位立方之和等于该整数的三位数。例如:1的立方+5的立方+3的立方 = 153
     
     27. （＊＊）已知abc+cba = 1333,其中a,b,c均为一位数，编程求出满足条件的a,b,c所有组合   三层循环
     
     28. （＊＊＊）输入两个数，求最大公约数和最小公倍数。(普通方法和)
     
     29.	（＊＊＊）一个球从100m高度自由落下，每次落地后反跳回原来高度的一半，再落下，再反弹。
     求它在第10次落地时，共经过多少米？第10次反弹多高
     30.定义一个具有20个元素的整型数组，每个元素的取值范围是30-70之间，求数组元素的和。
     31、复制一个数组，即两个数组容量一样，把其中一个数组中的元素复制到另外一个数组中。
     32、生成2个数组，每个数组都有10个元素，元素取值范围20-40之间，数组对应元素相加，放到另外一个数组中。
     33.随机产生10个[20,40]数，并对10个数从小到大排序。
     34.查找字符串中的空格数：
     例如：“I love iOS, i want an iPhone5s”
     6个空格
     
     35.将字符串倒转：
     例如：“afjnpue”
     转变成字符串“eupnjfa”
     （注：是改变字符串本身，不是反向输出）
     
     36.字符串c1[20] = "iPhone18";
     a.求字符串长度
     b.将字符串c1拷贝到c2中
     c.求字符串占字节空间大小
     d.将字符串"I want a "与字符串c1拼接
     e.将"iPhonE18"与c1进行比较
     
     37.数组    int array[] = {12,13,24,35,47};用函数求出数组个数并打印
     
     38.将字符串中“a12b3c45d67g”中的数字去掉
     
     
     **************************************附加题***********************************
     
     1.优化冒泡排序算法:比如    int array[5] = {1,3,4,2,5};数组用冒泡排序,需要走4趟,但实际第二趟已经就排好序了,那么在代码里怎么进行优化才能让冒泡排序更加高效呢?(也就是已经在第二趟排好序之后,剩下的趟数就不比较了,提高执行效率).
     
     1.（＊＊＊＊）思考题：编程在一个已知的字符串中找最长单词，假定字符串中只含字母和空格，空格用来分隔不同单词。
     比如："ni hao world”,最长单词是world (选做)
     
     2.使用选择排序来对数组 int a[] = {11, 25, 23, 13, 19, 4};进行排序
     */

    return 0;
}
